﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Security;

namespace MotaWeb.Models.Interfaces
{
    public interface IMotaWebRepository
    {

        #region Quotes
        IQueryable<Quote> FindAllQuotes();
        Quote FindQuote(DateTime forDate);
        #endregion

        #region Announcements
        IQueryable<Announcement> FindAllAnnouncements();
        Announcement FindAnnouncement(DateTime forDate);
        Announcement FindAnnouncement(int id);
        Announcement CreateAnnouncement(string message, DateTime effectiveDate, DateTime expirationDate);
        void EditAnnouncement(int id, string message, DateTime effectiveDate, DateTime expirationDate);
        void DeleteAnnouncement(int id);
        #endregion

        #region Biographies
        IQueryable<Biography> FindBiographies();
        IQueryable<Biography> FindBiographies(bool isApproved);
        Biography FindBiography(int id);
        Biography FindBiography(string userName);
        IQueryable<Biography> FindPendingBiographies();
        Biography CreateBiography(string biographyText, string userName, bool isApproved);
        void EditBiography(int id, string biographyText, bool isApproved);
        void DeleteBiography(int id);
        ISiteUser SiteUserFromMembershipUser(MembershipUser user);
        void UpdateSiteUser(ISiteUser userToUpdate);
        SiteUser CreateSiteUser(string firstName, string lastName, Guid providerUserKey);
        #endregion
        
        void Save();

    }
}
